Expresia SELECT TOP este utilizată pentru a specifica numărul de înregistrări de selectat.
SQL SELECT TOP este util pentru tabele mari cu mii de înregistrări, deoarece returnarea unui număr mare de înregistrări poate afecta performanța sistemului.
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number
SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number
Următorul este un exemplu din tabelul „Customers” („Clienți”) din baza de date „Northwind”:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Următoarea instrucțiune SQL selectează primele trei înregistrări din tabelul „Customers” (pentru SQL Server/MS Access):
SELECT TOP 3 *
FROM Customers
Următoarea instrucțiune SQL arată un exemplu echivalent pentru MySQL:
Run SQLSELECT *
FROM Customers
LIMIT 3
Următoarea instrucțiune SQL arată un exemplu echivalent pentru Oracle:
SELECT *
FROM Customers
FETCH FIRST 3 ROWS ONLY
Următoarea instrucțiune SQL selectează primele 50% dintre înregistrări din tabelul „Customers” (pentru SQL Server/MS Access):
SELECT TOP 50 PERCENT *
FROM Customers
Următoarea instrucțiune SQL arată un exemplu echivalent pentru Oracle:
SELECT *
FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY
Următoarea instrucțiune SQL selectează primele trei înregistrări din tabelul „Customers” unde țara este „Germany” (pentru SQL Server/MS Access):
SELECT TOP 3 *
FROM Customers
WHERE Country = 'Germany'
Următoarea instrucțiune SQL arată un exemplu echivalent pentru MySQL:
Run SQLSELECT *
FROM Customers
WHERE Country = 'Germany'
LIMIT 3
Următoarea instrucțiune SQL arată un exemplu echivalent pentru Oracle:
SELECT *
FROM Customers
WHERE Country = 'Germany'
FETCH FIRST 3 ROWS ONLY